package com.school.entity;

/**
 * 子类：教师（继承Person）
 * 新增个性属性：授课课程；实现父类抽象方法printWork()（打印授课信息）
 */
public class Teacher extends Person {
    // 个性属性：授课课程（仅教师拥有，private修饰）
    private Course teachingCourse;

    // 子类构造方法：通过super()调用父类构造
    public Teacher(String teacherId, String name, String gender) {
        super(teacherId, name, gender); // 初始化父类的id、name、gender
    }

    // 个性方法：开设课程（绑定教师与课程）
    public void openCourse(Course course) {
        this.teachingCourse = course;
        System.out.println("教师【" + super.name + "】（ID：" + super.id + "）开设了《" + course.getCourseName() + "》");
    }

    // 实现父类抽象方法：打印教师授课信息（工作单）
    @Override
    public void printWork() {
        String courseDesc = (teachingCourse != null) ?
                "《" + teachingCourse.getCourseName() + "》（编号：" + teachingCourse.getCourseId() + "）" :
                "未开设任何课程";

        System.out.println("\n===== 教师【" + super.name + "】（ID：" + super.id + "）的授课信息 =====");
        System.out.println("授课课程：" + courseDesc);
        if (teachingCourse != null) {
            System.out.println("上课地点：" + teachingCourse.getLocation());
            System.out.println("上课时间：" + teachingCourse.getTime());
        }
    }

    // Getter：外部访问授课课程（学生打印课表时需关联课程与教师）
    public Course getTeachingCourse() {
        return teachingCourse;
    }
}